Answering Door Bell

The Answering Door Bell is a simple device that displays a message to your guests at the door with just the click of a button. Any button of an IR remote can be programmed to display a particular message on the screen.


Connections





VCC of IR Receiver 5v of Arduino
GND of IR Receiver GND of Arduino
OUT of IR Receiver pin 11 of Arduino.
   
 Buzzer +ve  Pin 13 of Arduino
 Buzzer -ve   GND of Arduino
   
Pin 1 (VSS) of L.C.D  GND of Arduino
Pin 2 (VDD) of L.C.D  5V of Arduino
Pin 3 (V0) of L.C.D   potentiometer center pin
Pin 4 (RS) of L.C.D Pin2 of Arduino
Pin 5 (RW) of L.C.D GND of Arduino
Pin 6 (EN) of L.C.D Pin 3 of Arduino
Pin 11 (D4) of L.C.D Pin 4 of Arduino
Pin 12 (D5) of L.C.D Pin 5 of Arduino
Pin 13 (D6) of L.C.D Pin 6 of Arduino
Pin 14(D7) of L.C.D Pin 7 of Arduino
Pin 15 (A) of L.C.D Pin 10 of Arduino
Pin 16 (K) of L.C.D GND of Arduino

Source code*



//initialization
#include <IRremote.h>
#include <IRremoteInt.h>
#include <LiquidCrystal.h>
int IRpin = 11;
IRrecv irrecv(IRpin);
decode_results results;
const int rs=2, e=3, d4=4, d5=5, d6=6, d7=7;
LiquidCrystal lcd(rs,e,d4,d5,d6,d7);
const int RGB=13, led=8, bl=10;


//setup
void setup() {
  lcd.begin(16,2);
  lcd.clear();
  Serial.begin(9600);
  pinMode(RGB,OUTPUT);
  pinMode(led,OUTPUT);
  pinMode(bl,OUTPUT);
  irrecv.enableIRIn(); // Start the receiver
  lcd.clear();
      digitalWrite(RGB,LOW);
      digitalWrite(led,LOW);
      digitalWrite(bl,HIGH);
      lcd.setCursor(0,0);
      lcd.print("D.B.M.S. English");
      lcd.setCursor(0,1);
      lcd.print("     School     ");
}

//working
void loop() {
  if (irrecv.decode(&results)){   //checks if signal is transmitted

     Serial.println(results.value);  // prints the value of the hex code on the serial monitor
     
//print message on L.C.D. according to the value received 
      if(results.value==2672){ 
        lcd.clear();
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("   B.H. Area   ");
        lcd.setCursor(0,1);
        lcd.print("   Road No. 7  ");
      }

         
      if(results.value==2704){
        lcd.clear();
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
        digitalWrite(bl, LOW);
        lcd.setCursor(0,0);
        lcd.print("                ");
        lcd.setCursor(0,1);
        lcd.print("                ");
      }
      
      if(results.value==16){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("Please wait for ");
        lcd.setCursor(0,1);
        lcd.print("    a minute    ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }
      
     
     if(results.value==2064){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("     Please     ");
        lcd.setCursor(0,1);
        lcd.print("    Come  in    ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }
      
     
     if(results.value==1040){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("     Just      ");
        lcd.setCursor(0,1);
        lcd.print("    coming     ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }
      
     
     if(results.value==528){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH); 
        lcd.setCursor(0,0);
        lcd.print("Please wait for ");
        lcd.setCursor(0,1);
        lcd.print("    5 minutes   ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }
      
     
     if(results.value==3088){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print(" Please drop it ");
        lcd.setCursor(0,1);
        lcd.print(" in the mailbox ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }
      
     
     if(results.value==2576){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);        
        lcd.setCursor(0,0);
        lcd.print("   Can we meet  ");
        lcd.setCursor(0,1);
        lcd.print("     Later?     ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }
      
     
     if(results.value==1552){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("   Can we meet  ");
        lcd.setCursor(0,1);
        lcd.print("    tomorrow    ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }

     if(results.value==3600){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("  We will meet ");
        lcd.setCursor(0,1);
        lcd.print(" one hour later ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }

     if(results.value==272){
      lcd.clear();
        digitalWrite(led,HIGH);
        digitalWrite(bl,HIGH);
        lcd.setCursor(0,0);
        lcd.print("    Meet you    ");
        lcd.setCursor(0,1);
        lcd.print("     there.     ");
        digitalWrite(RGB,HIGH);
        delay(500);
        digitalWrite(RGB,LOW);
        delay(100);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(50);
        digitalWrite(RGB,LOW);
        delay(50);
        digitalWrite(RGB,HIGH);
        delay(250);
        digitalWrite(RGB,LOW);
        digitalWrite(led,LOW);
     }

      if(results.value==2320){
      lcd.clear();
        digitalWrite(led,LOW);
        digitalWrite(bl,HIGH);
        digitalWrite(RGB,LOW);
        lcd.setCursor(0,0);
        lcd.print("D.B.M.S. English");
        lcd.setCursor(0,1);
        lcd.print("     School     ");
     }
      
     delay(499);
     irrecv.resume();
     delay(499);
    }//if any results received
}//void loop
                


* This is the 2018 version of the code that was presented at MTFIG

Planning ahead

I am currently working to equip the device with wi-fi and a camera. For the purpose, I plan to use an esp-32 cam or esp-32 eye board, which not only has inbuilt wifi but also a 2mp camera. It can then be connected to the user's mobile phone using blynk. The user can then use their phone to send messages to the screen, look who is at their doorstep and even open the door, just with a click.